// 上报日志
import reportLogApi from '@/api/reportLogApi'
import { parseTime, randomCoding } from '@/utils/publicUtils'
import { WebTraceIdCache, LogPathCache } from '@/utils/cache-util'
// 上报日志
export const reportLog = (data) => {
    const webTraceId = `${randomCoding(4, 'letter')}${Date.now()}`
    WebTraceIdCache.set(webTraceId)
    let test = {
        createTime: parseTime(new Date()), // 访问时间
        menuKey: '', // 菜单标识
        pageKey: '', // 页面标识
        platKey: 'WEB-B', // 平台标识:WEB-B，MICRO-C,MICRO-B
        resourceKey: '', // 资源标识
        type: data.type, // 操作行为类型： 1.登录 2.访问菜单 3.访问PC端页面 4.访问PC端资源 7.小程序B端/C端切换
        webTraceId: webTraceId // 前端链路Id
    }
    //点击菜单： data = {type: 2, menuKey: 'menuKey' }
    if (data.type == 2) {
        test.menuKey = data.menuKey
    }

    if(data.type == 3 && LogPathCache.get() == data.pageKey) {
        // 防止页面重复上报
        return false
    }
    //访问某个页面： data = {type: 3, pageKey: 'pageKey' }
    if (data.type == 3) {
        test.pageKey = data.pageKey
        LogPathCache.set(data.pageKey)
    }
    //访问PC端资源： data = {type: 4, resourceKey: 'resourceKey' }
    if (data.type == 4) {
        if(data.resourceKey.length == 0) {
            return false
        }
        test.resourceKey = data.resourceKey
        test.pageKey = data.pageKey
    }

    reportLogApi.saveFrontLog(test).then((res) => {
    })
}
